
#include "HC-SR04.h"


//volatile uint32_t time = 0; // 使用计时器7计时器需要设置全局变量

// 初始化对接模块的ECHO和TRIG的两个端口
void ModuleInit(void)
{
    BASIC_TIM_Init(); // 计时器7初始化，类多线程计时，中断请求计数
    // 使用PA4输出（对接TRIG）和PA5输入（对接ECHO）
    // 开启GPIOA的时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitTypeDef GPIO_InitStruct;
    // 配置PA4输出
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
    // GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStruct);
}

void ModeleUse(void)
{
    u32 last = 0;		// 记录间隔
	char buf[32] = {0}; // 显示用的字符串
    BASIC_TIM_Init(); // 计时器7初始化，类多线程计时，中断请求计数
	SoftwareSerialPortInit();	  // 初始化串口用于显示

    last = 0;
    PAout(4) = 0;//空闲位

    PAout(4) = 1;//
    DelayUS(10);
    PAout(4) = 0;//

    while (PAin(5) == 0)
        ;

    last = micros();

    while (PAin(5) == 1)
        ;

    last = micros() - last;

    memset(buf, 0, sizeof(buf));
    sprintf(buf, "last:%u\r\n", last);
    SoftwareSerialPortPuts(buf);

    DelayMS(500);
}
